←
▼
ようになります。 また、スクリプト・ファイルへのオプション付きショートカットを作成するだけで、
エラーが発生した場所を
vbslib6
vbslib のプログラミング言語 VBScript の説明です
VBScript (WSH) 言語を、バッチファイルのように簡単に使えるようにするスクリプト・プログラミング・
ライブラリーです。 vbslib を使ったスクリプトは、インストールしなくても、
vbslib のマニュアル(本書)です
2017/ 3/20
ライセンス
'* VBScript ShortHand Library (vbslib)
'* vbslib is provided under 3-clause BSD license.
'* Copyright (C) Sofrware Design Gallery "Sage Plaisir 21" All Rights Reserved.
参考
vbslib は、修正BSDライセンスであり、無料でお使いいただけますが、無保証です。
再頒布や加工も vbs ファイルに書かれた下記を削除しなければ自由にできます。 商用利用可。
vbslib を参考にして作成したスクリプトやライブラリの著作権は、あなたにあります。
パッケージには、GPL ライセンスのプログラムを scriptlib\GPL フォルダーなどに含んでいます。
サポート先
インストール
初めて使ってみるときは、
vbslib Prompt.vbs
をダブルクリックしてください。
画面で見るマニュアル
ダウンロード
for Windows 7 / 8 / 10 (32bit/64bit)
Sub Main( Opt, AppKey )
echo "Hello, world!"
End Sub
サンプル
解説
テキスト・エディターで編集
ダブルクリックで実行
sample.vbs
- shorthand library for vbscript -
5.93 interim version
で使える
で確認できるように VBScript を拡張しており、定型作業の
自動化やテスト駆動開発(TDD)が快適に行えるようになります。
コマンドラインやバッチファイルの説明です。
参考
←
▼
▲
Snap Note を使えば _src\vbslib.svg を開くことができ、
本文中の (src) が、ソースへのハイパーリンクになります。
←
▼
▲
vbslib からエディターなどのツールを起動することがありますが、どのツールを使うのか
を、選択することができます。
Sub Main( Opt, AppKey )
echo "Hello, world!"
End Sub
'--- start of vbslib include ------------------------------
: (vbslib をインクルードして main を呼び出すコード)
新規に vbslib を使ったスクリプトを作成するときは、sample.vbs (メイン)と、scriptlib フォルダ
を、作業を行う任意のフォルダにコピーしてください。 (この作業は、
の 3 を選んでもできます。) そして、コピーした sample.vbs をテキストエディタ
で編集するか、右クリック [ 編集 ] してください。 実行するときは、sample.vbs をダブル
クリックしてください。 vbslib を使ったスクリプトは、下記のように vbslib include があります。
sample.vbs
メイン.vbs は、scriptlib フォルダが入っているフォルダ(上記の場合はScriptA フォルダ)
のサブフォルダーに置くこともできます。 逆に言えば、scriptlib フォルダを、親フォルダに
移動することができます。 よって、ScriptA フォルダの中ならどこでも、scriptlib フォルダ
にある vbs ファイルの機能を使うことができます。
メイン.vbs のファイル名を変えることはできますが、scriptlib フォルダの名前を変えること
はできません。(すべての vbs ファイルの g_vbslib_path 変数を変えない限り。)
sample.vbs (メイン)
簡易 vbslib リンク 機能
vbslib include
vbslib include は、vbslib などのライブラリを使えるようにします。
vbslib を使うと、ファイル操作やプログラムの起動などを行う、スクリプトの作成(プログラ
ミング)が簡単になり、いろいろなことが自動化できます。
そして、作成したスクリプトを、
起動が素早くできるようになります。
複雑な処理を自動化
.vbs スクリプト
PC
コピー/解凍するだけで、
(任意の作業フォルダ)
vbslib のメインフォルダ
コピー
+
scriptlib
とりあえず使ってみるときは、左のツリーにある「ユーザインターフェース」、「ファイル
操作」、「プロセス制御」の章を参照して、sample.vbs を修正してみてください。
vbslib の zip ファイルを展開したフォルダーを削除してください。
上記で説明している scriptlib フォルダーをコピーしていたら、それも削除してください。
ベースとなる VBScript(WSH) は、Windows 2000 から、プリインストールされています。
デバッガは、Visual Studio 2003 以降の Standard 以上または、フルインストールの MS-Office
があれば使えます。vbslib のソースは、構造化エディタに対応しています。
.vbs ファイルをダブルクリックしてから実行開始まで時間がかかるときは、ウィルス対策ソフトの
スクリプトに関するチェックをしないようにしてください。 チェックをしなくても、Windows のセキュ
リティ機能によって、ユーザーの許可無く悪意のあるスクリプトが実行されることはありません。
(src)
vbslib は、テスト駆動開発(TDD)も強力にサポートします。 単純な自動テスト・スクリ
プトを作ってから、そのテストが動くためのプログラムを開発するスタイルは、開発の
ゴールが明確になり、迷走することが無くなります。
PCを借りているときは情報漏えいに注意してください。
テスト駆動開発(TDD)を行うには、「テスト・プロンプト (Test.vbs)」の章を参照してください。
上記の、scriptlib フォルダがどのように作られているかの詳細について知りたいときは、
「vbs_inc」 と 「setting フォルダ」 の章を参照してください。(中級者以上)
思い通りに動かなかったときは、「デバッグ」 、「困ったときは?」 の章を参照してください。
コマンド名は、MS-DOSバッチファイルや Linux シェル標準に準拠しています。
左のツリーを開いてください。いろいろな関数が用意されています。これらの関数や
あなたのオリジナルの関数を使ったスクリプトが、インストーラを実行することなく、
コピーするだけで使えるようになります。
MS オフィスなどのアプリケーションの操作は、WSH の ActiveX 機能を使ってください。
作成したスクリプトを
にすると使いやすくなります。
ログファイルへの出力したいときは、コマンドプロンプトから下記のように入力してください。
cscript sample.vbs | safetee -o log.txt
safetee はネットから入手してください
の形式にすれば、スクリプトの
PCを借りているときは情報漏えいに注意してください。
・ファイルのコピー、移動、削除、開くことの自動化
・テキスト・ファイル(HTML, XML, CSV, プログラミング言語など)の編集の自動化
・数値の計算、データの集計の自動化
・コンパイル、テスト駆動開発(TDD)、問題の検索や通知の自動化
・バイナリ・ファイルの読み書きの自動化
・MSオフィスなど ActiveX アプリケーションのファイルの編集を含む処理の自動化
スクリプトで自動化できること
インストール
vbslib を内部で使うスクリプトを始めて使う PC でも、vbslib をインストールするプログラム
を実行したり、パスを通す設定をしたりする必要はありません。
スクリプト・ファイルと一緒に scriptlib フォルダーをコピーまたは、それらを含むフォルダー
をコピーしたり、圧縮ファイルを解凍するだけで、ダブルクリックしてスクリプトを起動できます。
(メイン)
sample.vbs
デバッガーのインストールについては、
vbslib や、vbslib を使うスクリプトのインストールは、ダウンロードした圧縮ファイルを解凍
するだけです。
参考
作成したスクリプトのデバッグをするときは、
scriptlib フォルダーは、メイン・スクリプト・ファイルがあるフォルダーか、その親フォルダー
に格納してください。 そこに、vbslib や様々なスクリプト関係のファイルが格納されています。
参考
vbslib を再配布する際、vbslib に含まれる GPL のプログラムに注意する必要があります。
ただし、以下の内容は、vbslib 開発者独自の解釈の可能性があります。
GPL
のプログラムを同梱することができます。
参考
vbslib は、内部で scriptlib\GNU\*\bin に入っている GPL のプログラムをコマンドライン経由で
呼び出し、出力「データ」を使用しています。 このため、GPL の派生プログラムに該当しない
(両立する必要がない、ライセンスが伝播しない)ものと考えています。
また、GPLと両立しないパッケージでも、
ただし、GPL のソフトは、それ単体で GPL で使用できる形でリリースされる必要があります。★
具体的には、_src\GPL フォルダーに GPL のソフトをそのまま格納し、README にその場所を
書いています。
参考
なお、vbslib は、修正BSDライセンスであり、GNUが言う 「GPL と両立したライセンス」なので、
vbslib の再配布ができなくなることはありません。
参考
vbslib のユーザーが、GNUが言う 「GPL と両立しないライセンス」でも配布することができる
ことを考慮して、GPL のコードやバイナリーが必要ないときに、すぐに削除できるよう、
GPL_bin_fullset および、scriptlib\GPL フォルダーにまとめています。
vbslib 自体は、修正BSDライセンスなので、再配布は自由ですが、GPL_bin_fullset および、
scriptlib\GPL フォルダーの中に GPL のプログラムが入っているので、そのまま再配布するには
GPL の要求(下記★)を満たさなければ、GPL 支持者の反感を買います。 ただし、法的根拠は
グレーで、判例もありません。
ウィンドウを表示しないときや最小化するときは、
共有フォルダー(サーバー)にインストールする
→ Samples\DownloadStart フォルダー
vbslib を使ったスクリプトは、共有フォルダーに配置して、共有フォルダーから起動する
こともできます。 ただし、共有フォルダーにアクセスすると遅い場合があります。
遅くならないように、内部的にスクリプトをローカルのダウンロードして実行することも
できます。 下記のフォルダーにあるサンプルを参照してください。
参考
ダウンロードしたスクリプトは、
の中のフォルダーに格納されます。
そのフォルダーの名前は、スクリプトのタイムスタンプです。
←
▼
▲
開発方針
・ユーザーの体験が、シンプル&ビジュアルであること
・検索可能なサンプルからコピーして、見よう見真似で、すぐに試せること
・結果が同じであれば、エラーにしないこと(宣言型プログラミング)。
例:ファイルが無いパスを指定して削除したとき
・タイプミスは、未宣言エラーではなく設定値参照で見つける … 例: /g_debug オプション
・結果がユーザーの想定外になるときは、仕様の通りであっても失敗したと伝えること
・対処法は、概念を介して説明するのではなく、サンプルを使ってダイレクトに示すこと
・エラーが発生して復帰するまでは、次のエラーが発生しても、最初のエラーを表示すること
・ユーザーから見ると意味が異なる、ボトムアップから定義された用語は使わないこと
・略語は標準化されたもののみ。 データ(名詞)か処理(動詞)の区別を明示すること。
・同じ機能が既存の技術にあれば、操作方法(コマンド名など)をそれに合わせること
←
▼
▲
ショートハンド・プロンプト(CUI)から、コマンドを入力すると、特別に用意されたスクリプトを素早く
起動することができます。 ドキュメントにコマンド名を書くと便利になります。
家計簿プロンプト
1. 今月の家計簿ファイルを開く [op]
2. バックアップする [bk]
3. 家計簿フォルダーを開く [fo]
番号またはコマンド >op
op
家計簿.vbs
↓ ダブルクリックすると開く
← 番号またはコマンドを入力する
… ショートハンド・プロンプトを、新規作成する
… ショートハンド・プロンプトを起動する関数
… バッチ・ファイル等から起動する
参考
vbslib は、すぐに使えるちょっとしたアプリケーションを提供しています。
1つは、スタート・メニューから選ぶように、vbslib Prompt.vbs ファイルをダブルクリックして
起動する形式のアプリケーションです。(ショートハンド・プロンプト形式)
vbslib Prompt
1. ヘルプ(SVG形式)の表示 (Google Chrome や Snap Note で見えます)
2. ヘルプ(Internet Explorer - VML形式)の表示
3. ■ vbs ファイルを新規作成する [MakeNewScript]
4. ショートハンド・プロンプトを新規作成する [MakeNewPrompt]
5. タブ文字と空白文字を変更する [SpaceToTab]
6. Test テンプレート・フォルダーを開く [test]
7. 最新の vbslib に変換する [ConvertToNewVbsLib]
8. このプロンプトのソースを開く
9. vbslib フォルダーを開く
番号またはコマンド >
もう1つは、特定のフォルダーに .vbs ファイルをコピーして、そのフォルダーに対する処理を
するスクリプト・ファイル形式のアプリケーションです。 スクリプト・ファイル形式のアプリ
ケーションを、ショートハンド・プロンプトにまとめることも簡単にできます。
キーワード:
←
▼
▲
vbslib Prompt.vbs ファイルをダブルクリックすると、スクリプトの開発を支援する
スクリプトを起動することができます。 下記のようにメニューが表示されるので、番号を入力
してください。 また、メニューに表示されていないコマンドを入力することもできます。
vbslib - Short Hand Library
1. ヘルプ(SVG形式)の表示 (Google Chrome や Snap Note で見えます)
2. ヘルプ(Internet Explorer-VML形式)の表示
3. ■ vbs ファイルを新規作成する [MakeVbsLibSample]
4. エディターなど外部プログラム設定 [Setting]
5. ショートハンド・プロンプトを新規作成する [MakeNewPrompt]
6. Test テンプレート・フォルダーを開く
8. このプロンプトのソースを開く
9. vbslib フォルダーを開く
番号またはコマンド >3
左のツリーを展開すると、使えるコマンドの詳細を見ることができます。
(現在のページに対応する左のツリーの表示は、ページの左上外にある 「←」 を押してください)
vbslib Prompt.vbs
↓ ダブルクリックすると開く
初めて使ってみるときは、3 を選んで、簡単なスクリプトを動かしてみましょう。
Option Explicit
Sub main2( Opt, AppKey )
echo "Hello, world!"
End Sub
sample.vbs
3. ■ vbs ファイルを新規作成する [MakeVbsLibSample]
3
「3. vbs ファイルを新規作成する」を選ぶと、下記ような内容のファイルができます。
解説
コマンド名は、大文字と小文字を区別しません。 つまり、コマンド名の大文字の文字が小文字に
なっていたとしても起動できます。
コマンドの速記形を追加したり、独自のコマンドを追加したり、処理内容をカスタマイズしたりする
ことができます。
例:
←
▼
▲
参考
入力できる専用コマンドは、多くの場合、アプリケーションのマニュアルに書かれています。
自分がしたいことをマニュアルの目次から見つけたら、その本文から専用コマンドを探してください。
画面で見るマニュアルを見ているのなら、専用コマンドをコピー&ペーストできます。 ただし、
ペーストするときは、右クリックして [ 貼り付け ] をクリックしてください。
よく使うコマンドは、Snap Note のノート・バーなどに一時的に貼り付けておくと便利に使えます。
テンポラリ・フォルダーを開く
画面で見るマニュアル
vbslib を使ったスクリプトを実行すると、その実行のために内部的に必要になる
ファイルが、テンポラリ・フォルダーに作られることがあります。
Prompt.vbs
-------------------------------------------------------------------------------
Short Hand Prompt
1. RunProgram
2. InvestigateLog
他. Document.svg を参照 (Google Chrome や Snap Note で見えます)
番号またはコマンド >2
-------------------------------------------------------------------------------
ログ・ファイルのパス >C:\Log\Test_log.txt
Test_log_summary.html を出力しました。
C:\Log\Test_log.txt
2
パスは、ファイルをプロンプトにドラッグ&ドロップすることでも入力できます。
上記の黄色い部分が、ユーザーが入力する部分です。
コマンド名は、大文字と小文字を区別しません。 つまり、コマンド名の大文字の文字が小文字に
なっていたとしても起動できます。
コマンドを入力した後、パラメーターやファイルへのパスの入力を求められることがあります。
使い勝手の悪い専門的なプログラムは、それを支援するスクリプトを vbslib などで作成して、
アプリケーション・プロンプトの形にして、画面で見るマニュアル を用意することで、使いやすく
なります。
画面で見るマニュアルから、専用コマンドをコピー&ペーストしたり、ショートカットを作成する
ことで、次々と魔術(スクリプト)を繰り出す速記原典(ショートハンド)のように、次々と処理を
起動させることができるようになります。
使いやすさは、CUI や GUI に関わらず、電子マニュアルの構成によって、大きく左右されます。
検索可能なユースケース・ベースのハイパーテキストでできたマニュアルを、Snap Note などで
作成するとよいでしょう。
一般のコマンドプロンプトや、バッチファイルなどから、専用コマンドを実行することもできます。
ただし、cmd.exe を使わないで、cscript.exe を使ってください。 64ビットWindows にも対応する
には、下記のように cscript 環境変数の値が変わるようにして、cscript 環境変数を使って
.vbs ファイルを起動してください。
できれば、VBScript を使って、Prompt.vbs の内容を参考にして、関数を直接呼び出すように
してください。
/ から始まるオプションは、全てのパラメーターの後に指定してください。 これは、/ から始まる
Linux のパスもパラメーターに指定できるようにするためです。
ショートハンド・プロンプトが開くアプリケーション(*.exe, *.vbs など) を、マウスの右ボタンで
ドラッグ&ドロップして [ ショートカットをここに作成 ] を選ぶと、ダブルクリックするだけで
すぐに専用コマンドを起動できるようにできます。
マウスの右ボタンでドラッグ&ドロップして [ ショートカットをここに作成 ]
Prompt - ショートカット
ショートカットを右クリックして [ プロパティ ] で、リンク先を修正。
cmd.exe /K (%cscript% //nologo "C:\Fo\Prompt.vbs" CommandA "C:\Log\file.txt")
リンク先: (厳密)
↑専用コマンド名
↑パラメーター
こうしてできたショートカット・ファイルをダブルクリックすると、専用コマンドがすぐに実行されます。
@echo off
if "%ProgramFiles(x86)%" == "" set cscript=cscript
if not "%ProgramFiles(x86)%" == "" set cscript=%windir%\SysWOW64\cscript.exe
%cscript% //nologo Prompt.vbs CommandA "C:\Log\file.txt" /option:1
pause
テンポラリ・フォルダー
Prompt.vbs
↓ ダブルクリックすると開く
パラメーターを並べていくことで、ユーザーの入力を自動的にできます。
"" を指定すると Enter のみの入力もできます。 ただし、「リンク先」の先頭に cmd.exe が必要です。
" や \' を VBScript に渡すときは、右のリンク先に示す逆変換が必要です。
cmd.exe があると、専用コマンドが終了してもウィンドウが閉じなくなり、結果を確認できます。
/K を /C に変えると、ウィンドウが自動的に閉じるようになります。
エラーが発生したときに g_debug = 1 を設定するように表示されたら、/g_debug:1 を追加すると、
デバッガーに接続して、エラーが発生した場所を確認することができます。
cscript.exe Prompt.vbs CommandA "C:\Log\file.txt" /g_debug:1
参考
/g_debug:1
CommandA "C:\Log\file.txt"
"C:\Fo\Prompt.vbs"
cmd.exe /K (%cscript% //nologo
↑ cmd.exe /K が必要な場合もある
ファイルの関連付けに設定すれば、ファイルをダブルクリックして実行することもできます。
参考
カスタマイズするには、InputCommand 関数に指定するパラメーターを編集してください。
%cscript% //nologo
CommandA "C:\Log\file.txt"
特別なスクリプトを起動するために、キーボードからコマンドを入力できる状態であることを示す
記号、またはそのウィンドウを、「ショートハンド・プロンプト」と呼びます。
スクリプトファイル (Prompt.vbs) をテキスト・エディターで編集すれば、よく使うコマンドをメニュー
項目に追加したり、よく使うコマンドの名前を短くすることができます。
マニュアルを作成するときは、ユーザーがしたいこと(ユースケース)ごとの章と、コマンドごとの
章(索引)の両方を用意するとよいでしょう。
sample.bat
Prompt.vbs の CommandA 関数を呼び出します。 CommandA 関数の中で、input 系の
呼び出しが1つのときは、パラメーターは "C:\Log\file.txt"、残りの /option:1 はオプション。
%cscript% については、
一般のコマンドプロンプトや、バッチファイルなどから、専用コマンドを実行するときは、
特定の目的を達成するために作成した多くのスクリプトを、1つのスクリプト・ファイルにまとめた
ものが、ショートハンド・プロンプトのスクリプト・ファイルです。
ショートハンド・プロンプトの .vbs スクリプトをバッチファイルなどから起動した場合、実行が
完了したら、そのプロセス(ショートハンド・プロンプト)は終了します。
関連
サンプル
→ Samples\BatchFiles フォルダー
リンク先: (簡易)
"C:\Fo\Prompt.vbs" GetHash
"C:\Fo\Prompt.vbs"
↑専用コマンド名
GetHash
←
▼
▲
vbslib が提供するスクリプト・データ・ファイルに対応したアプリケーションは下記のものが
あります。
例:
スクリプト・データ・ファイルは、アプリケーションと関連付けられたデータ・ファイルの
ように扱えるスクリプト・ファイルです。 スクリプト・データ・ファイルをテキスト・エディターで
開けば、設定を編集することができ、ダブルクリックすれば、その設定に従ってスクリプトが
起動します。
スクリプト・データ・ファイルをコピーしたときに、もし起動できなかったときは、アプリケー
ションの本体が入った scriptlib フォルダーが親フォルダー(または、その親フォルダー、…)
に存在しない可能性があります。 そのときは、scriptlib フォルダーもコピーしてください。
'---------------------------------------------[FileInScript.xml]
'<Sample_App>
'<Setting value="WORK"/>
'</Sample_App>
'--------------------------------------------[/FileInScript.xml]
Sub Main( Opt, AppKey )
Sample_App AppKey, new_FilePathForFileInScript( Empty )
End Sub
'--- start of vbslib include ------------------------------
: (vbslib をインクルードして main を呼び出すコード)
スクリプト・データ・ファイルの内容は、おおよそ、下記のようになっています。
----------------------------------------------------------------------
Short Hand Prompt
1. RunProgram
2. InvestigateLog
番号またはコマンド >2
↓ ダブルクリックすると開く
… アプリケーションのデータ 兼 起動アイコン
… 中にアプリケーションの本体がある scriptlib フォルダー
Sample_App
データ部分
関連付け部分
データ部分は、
など、アプリケーションによって
関連付け部分は、アプリケーションと関連づけの設定があります。 下記の場合 Sample_App
関数がアプリケーションです。 関数の引数は変えないでください。
形式が異なります。 どの形式であるかは、データ部分の最初と最後の行の行末にある
[ ] で囲まれた部分を参考に判断できます。 下記の場合、[FileInScript.xml] なので、
ただし、どの形式でも、行頭に ' が必要です。(VBScript の言語仕様のため)
XML 形式です。
データ部分の最初と最後の行は、変更しないでください。